iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
自我挑戰組

我與熊貓Pandas相處的日子系列 第 23

Day23- 資料分析(6)績效分析

  • 分享至 

  • xImage
  •  

目標:
1.不同年度中電影分數最高的導演
2.不同導演的平均評分及統計分佈(使用groupby())
3.不同種類電影的平均評分及統計分佈(使用groupby())

import pandas as pd
movie = pd.DataFrame([
    ['A類電影', 2020, 54,'導演Apple'],
    ['B類電影', 2020, 90,'導演Ben'],
    ['C類電影', 2020, 58,'導演Candis'],
    ['A類電影', 2021, 53,'導演Linda'],
    ['B類電影', 2021, 66,'導演Apple'],
    ['C類電影', 2021, 82,'導演Ben'],
    ['A類電影', 2022, 85,'導演Kevin'],
    ['B類電影', 2022, 75,'導演Peter'],
    ['C類電影', 2022, 56,'導演Judy'],
], columns=['電影名稱', '年份', '分數', '導演'])
print(movie)

執行結果:
   電影名稱    年份  分數  導演 
0  A類電影  2020  54   導演Apple
1  B類電影  2020  90     導演Ben
2  C類電影  2020  58  導演Candis
3  A類電影  2021  53   導演Linda
4  B類電影  2021  66   導演Apple
5  C類電影  2021  82     導演Ben
6  A類電影  2022  85   導演Kevin
7  B類電影  2022  75   導演Peter
8  C類電影  2022  56    導演Judy

1.不同年度中電影分數最高的導演

for year in movie['年份'].unique():
    filtered_movie = movie[movie['年份'] == year]
    best_director = filtered_movie.groupby('導演')['分數'].max().sort_values(ascending=False).index[0]
    print(f"在{year}年,電影分數最高的導演是:{best_director}")

執行結果:
在2020年,電影分數最高的導演是:導演Ben
在2021年,電影分數最高的導演是:導演Ben
在2022年,電影分數最高的導演是:導演Kevin

2.計算不同導演的平均評分

average_score_by_director = movie.groupby('導演')['分數'].mean()
print(average_score_by_director)

執行結果:
導演
導演Apple     60.0
導演Ben       86.0
導演Candis    58.0
導演Judy      56.0
導演Kevin     85.0
導演Linda     53.0
導演Peter     75.0
Name: 分數, dtype: float64

不同類型導演的評分統計資料分布

average_score_by_director = movie.groupby('導演')['分數'].describe()
print(average_score_by_director)

執行結果:
          count  mean       std   min   25%   50%   75%   max
導演                                                           
導演Apple     2.0  60.0  8.485281  54.0  57.0  60.0  63.0  66.0
導演Ben       2.0  86.0  5.656854  82.0  84.0  86.0  88.0  90.0
導演Candis    1.0  58.0       NaN  58.0  58.0  58.0  58.0  58.0
導演Judy      1.0  56.0       NaN  56.0  56.0  56.0  56.0  56.0
導演Kevin     1.0  85.0       NaN  85.0  85.0  85.0  85.0  85.0
導演Linda     1.0  53.0       NaN  53.0  53.0  53.0  53.0  53.0
導演Peter     1.0  75.0       NaN  75.0  75.0  75.0  75.0  75.0

3.不同電影的平均評分

average_score_by_movie = movie.groupby('電影名稱')['分數'].mean()
print(average_score_by_movie)

執行結果:
電影名稱
A類電影    64.000000
B類電影    77.000000
C類電影    65.333333
Name: 分數, dtype: float64

不同類型電影的評分統計資料分布

score_distribution_by_movie = movie.groupby('電影名稱')['分數'].describe()
print(score_distribution_by_movie)

執行結果:
      count       mean        std   min   25%   50%   75%   max
電影名稱                                                           
A類電影    3.0  64.000000  18.193405  53.0  53.5  54.0  69.5  85.0
B類電影    3.0  77.000000  12.124356  66.0  70.5  75.0  82.5  90.0
C類電影    3.0  65.333333  14.468356  56.0  57.0  58.0  70.0  82.0

結束~ /images/emoticon/emoticon56.gif


上一篇
Day22- 資料分析(5)電影樞紐
下一篇
Day24- 資料分析(7)報表分析
系列文
我與熊貓Pandas相處的日子30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言